package Thread;

    /*第一种创建线程的方式
    继承Thread并重写run方法来定义线程要执行的
    任务。*/

public class CreateThread{
    public static void main(String[] args) {
        Mythread1 mythread1=new Mythread1();
        Mythread2 mythread2=new Mythread2();

//        启动线程要指定start方法，而不是直接
//        调用run方法。run方法是线程要执行的
//        任务。当线程的start方法被调用后,线程
//        进入runnab1e状态,一旦获取cpu时间,
//        run方法会自动被调用.|

        mythread1.start();
        mythread2.start();
    }

}


/*第一种创建线程的方式有两个不足:
1:由于java是单继承,那么当继承了Thread后
就无法再继承其他类。
2:由于继承Thread后重写run方法规定了线程
执行的任务,这导致线程与任务有-一个必然的
耦合关系，不利于线程的重用。*/

class Mythread1 extends Thread{
    public void run(){
        for (int i = 0; i < 1000; i++) {
            System.out.println("你是谁啊");
        }
    }
}

class Mythread2 extends Thread{
    public void run(){
        for (int i = 0; i < 1000; i++) {
            System.out.println("你猜我是谁");
        }

    }
}